package map;

import java.util.Collection;
import java.util.HashMap;
import java.util.Map;

/**
 * 统计字符串中每个字符出现的次数
 * 思路:
 * 用一个Map保存统计结果,key保存出现的字符,value保存该字符出现的次数
 * 利用字符串的charAt方法可以遍历字符串中每一个字符
 * 如果map中该字符不存在,则存入,并且对应的次数为1
 * 如果map中该字符已经存在,则根据该字符作为key提取其value(出现的次数)并对value+1再
 * 存回。
 * 遍历有输出map即可得知每个字符出现的次数。
 */
public class Test {
    public static void main(String[] args) {
        Map<Character, Integer> count = new HashMap<>();
        String line = "Thinking in java! i love java!";
        for (int i = 0; i < line.length(); i++) {
            char ch = line.charAt(i);
            if (count.containsKey(ch)) {
                Integer value = count.get(ch);
                value++;
                count.put(ch,value);
            }else{
                count.put(ch, 1);
            }
        }
        Collection<Character> valuess = count.keySet();
        valuess.forEach(
                valuee -> System.out.print("|" + valuee)
        );
        System.out.println();

        Collection<Integer> value = count.values();
        value.forEach(
                values -> System.out.print("|" + values)
        );
        System.out.println();
        System.out.println(count);
    }
}
